/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.srm.utilidades;

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

/**
 *
 * @author Caribe Soft
 */
public class EnviarMailBackup {

    public  void enviarCorreoAdjunto(String rutaArchivo,String host,String smtpuser,String smtpport,String smtpaut,String smtppass)
    {
        try
        {
            int limiteinf=rutaArchivo.lastIndexOf("\\")+1;
            int limitesup=rutaArchivo.length();
            String nameFile=rutaArchivo.substring(limiteinf, limitesup);
          // se obtiene el objeto Session. La configuración es para
          // una cuenta de gmail.
            Properties props = new Properties();
            props.put("mail.smtp.host", host);
            props.setProperty("mail.smtp.starttls.enable",smtpaut);
            props.setProperty("mail.smtp.port", smtpport);
            props.setProperty("mail.smtp.user", smtpuser);
            props.setProperty("mail.smtp.auth", smtpaut);

            Session session = Session.getDefaultInstance(props, null);
            // session.setDebug(true);

            // Se compone la parte del texto
            BodyPart texto = new MimeBodyPart();
            texto.setText("Esto es el Backup de La base de datos del srm");

            // Se compone el adjunto con la imagen
            BodyPart adjunto = new MimeBodyPart();
            adjunto.setDataHandler(
                new DataHandler(new FileDataSource(rutaArchivo)));
            adjunto.setFileName(nameFile);

            // Una MultiParte para agrupar texto e imagen.
            MimeMultipart multiParte = new MimeMultipart();
            multiParte.addBodyPart(texto);
            multiParte.addBodyPart(adjunto);

            // Se compone el correo, dando to, from, subject y el
            // contenido.
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(smtpuser));
            message.addRecipient(
                Message.RecipientType.TO,
                new InternetAddress(smtpuser));
            message.setSubject("Esto es el backup de la DB");
            message.setContent(multiParte);

            // Se envia el correo.
            Transport t = session.getTransport("smtp");
            t.connect(smtpuser, smtppass);
            t.sendMessage(message, message.getAllRecipients());
            t.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
